bitkeeper revision 1.1709.1.5 (42af164bHIB572FEONmRsv7duDIvzw)
authordjm@kirby.fc.hp.com <djm@kirby.fc.hp.com>
Tue, 14 Jun 2005 17:39:23 +0000 (17:39 +0000)
committerdjm@kirby.fc.hp.com <djm@kirby.fc.hp.com>
Tue, 14 Jun 2005 17:39:23 +0000 (17:39 +0000)
Fix broken VTI due to previous multi-domain prep patch

Signed-off-by Kevin Tian <Kevin.tian@intel.com>

xen/arch/ia64/domain.c
xen/arch/ia64/vmx_process.c

index 939173df50ad89abad32eb70cb8d47e1acf55870..611e82b59440f1e1aee689fbf005f54cbc837a1f 100644 (file)
@@ -230,19 +230,6 @@ void arch_do_createdomain(struct vcpu *v)
        d->xen_vastart = 0xf000000000000000;
        d->xen_vaend = 0xf300000000000000;
        d->arch.breakimm = 0x1000;
-
-       d->arch.mm = xmalloc(struct mm_struct);
-       if (unlikely(!d->arch.mm)) {
-               printk("Can't allocate mm_struct for domain %d\n",d->domain_id);
-               return -ENOMEM;
-       }
-       memset(d->arch.mm, 0, sizeof(*d->arch.mm));
-       d->arch.mm->pgd = pgd_alloc(d->arch.mm);
-       if (unlikely(!d->arch.mm->pgd)) {
-               printk("Can't allocate pgd for domain %d\n",d->domain_id);
-               return -ENOMEM;
-       }
-}
 }
 #else // CONFIG_VTI
 void arch_do_createdomain(struct vcpu *v)
@@ -366,21 +353,22 @@ void new_thread(struct vcpu *v,
        regs->cr_iip = start_pc;
        regs->cr_ifs = 0; /* why? - matthewc */
        regs->ar_fpsr = FPSR_DEFAULT;
-       if (VMX_DOMAIN(ed)) {
+       if (VMX_DOMAIN(v)) {
                vmx_init_all_rr(v);
        } else
                init_all_rr(v);
-       /* should this be regs->r28 in the non-VMX case? - matthewc */
-       VMX_VPD(v,vgr[12]) = dom_fw_setup(d,saved_command_line,256L);  //FIXME
+
        if (VMX_DOMAIN(v)) {
+               VMX_VPD(v,vgr[12]) = dom_fw_setup(d,saved_command_line,256L);
                /* Virtual processor context setup */
                VMX_VPD(v, vpsr) = IA64_PSR_BN;
                VPD_CR(v, dcr) = 0;
        } else {
+               regs->r28 = dom_fw_setup(d,saved_command_line,256L);
                v->vcpu_info->arch.banknum = 1;
-               /* v->vcpu_info->arch.metaphysical_mode = 1;  why not? - matthewc */
+               v->vcpu_info->arch.metaphysical_mode = 1;
+               d->shared_info->arch.flags = (d == dom0) ? (SIF_INITDOMAIN|SIF_PRIVILEGED|SIF_BLK_BE_DOMAIN|SIF_NET_BE_DOMAIN|SIF_USB_BE_DOMAIN) : 0;
        }
-       /* d->shared_info->arch.flags = (d == dom0) ? (SIF_INITDOMAIN|SIF_PRIVILEGED|SIF_BLK_BE_DOMAIN|SIF_NET_BE_DOMAIN|SIF_USB_BE_DOMAIN) : 0;  shared_info not set yet? */
 }
 #else // CONFIG_VTI
 
index 2c541af11368821a972ceade1bb5d0fc2eb5c04d..8ab671cdb8e53e983f25cf5100b75a970662c338 100644 (file)
@@ -116,7 +116,6 @@ vmx_ia64_handle_break (unsigned long ifa, struct pt_regs *regs, unsigned long is
                    case FW_HYPERCALL_EFI_GET_TIME:
                        {
                        unsigned long *tv, *tc;
-                       fooefi();
                        vmx_vcpu_get_gr(v, 32, &tv);
                        vmx_vcpu_get_gr(v, 33, &tc);
                        printf("efi_get_time(%p,%p) called...",tv,tc);